package com.wk.code.wkserver.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wk.code.wkserver.entity.User;
import com.wk.code.wkserver.response.admin.AdminHomeChartResponse;
import com.wk.code.wkserver.response.admin.AdminHomeResponse;
import com.wk.code.wkserver.response.admin.AdminUserRatioResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

/**
 * User 持久层
 *
 * @Author wq
 * @Date 2021-03-16
 **/
@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 后台统计用户
     *
     * @return AdminHomeResponse
     */
    AdminHomeResponse selectHomeStatistics();

    /**
     * 统计注册数量
     *
     * @param date 时间
     * @return AdminHomeChartResponse
     */
    Integer selectRegisterNum(@Param("date") String date);

    /**
     * 查询访问量
     *
     * @param date 日期
     * @return Integer
     */
    Integer selectVisitorNum(@Param("date") String date);

    /**
     * 查询用户统计
     *
     * @return AdminUserRatioResponse
     */
    AdminUserRatioResponse selectUserRatio();

    /**
     * 更新用户状态
     *
     * @param userId 用户ID
     */
    void updateUserStatus(@Param("userId") Integer userId);

    /**
     * 统计每一天的下单金额
     *
     * @param date 日期
     */
    BigDecimal selectTradeRatio(@Param("date") String date);
}
